package io.gbznt.modules.buss.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.gbznt.modules.buss.constatnt.MaintainTaskResultStatusEnum;
import io.gbznt.modules.buss.constatnt.MaintainTaskSourceTypeEnum;
import io.gbznt.modules.buss.constatnt.MaintainTaskTypeEnum;
import io.gbznt.modules.buss.constatnt.ProcessStateEnum;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 工单
 * 
 * @author gbznt
 * @email http://www.gbznt.com/
 * @date 2019-04-24 16:20:48
 */
@Data
@TableName("buss_maintain_task")
public class BussMaintainTaskEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键
	 */
	@TableId
	private String id;
	/**
	 * 处理人
	 */
	private String handler;
	/**
	 * 田块id
	 */
	private String farmlandInfoId;
	/**
	 * 部门（基地）id
	 */
	private String deptId;
	/**
	 * 告警id
	 */
	private String warningRecordId;
	/**
	 * 设备id
	 */
	private String equipmentId;
	/**
	 * 结果状态 0：一切正常 1：恢复正常 2：延后处理
	 */
	private Integer resultStatus;
	/**
	 * 工单编号
	 */
	private String businessNum;
	/**
	 * 工单类型 0：运维工单 1：维修工单
	 */
	private Integer type;
	/**
	 * 工单内容
	 */
	private String content;
	/**
	 * 紧急度(字典，告警规则的告警级别)
	 */
	private String gradeNum;
	/**
	 * 紧急度字典值
	 */
	@TableField(exist = false)
	private String gradeNumName;
	/**
	 * 状态： 0：待处理 1：进行中 2：已处理
	 */
	private Integer status;
	/**
	 * 接受时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date receiveTime;
	/**
	 * 完成时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date finishTime;
	/**
	 * 处理结果
	 */
	private String resultContent;
	/**
	 * 附件
	 */
	private String resultFileIds;
	/**
	 * 来源类型 0：后台添加 1：告警添加
	 */
	private Integer sourceType;

	@TableField(exist = false)
	private String deptName;
	@TableField(exist = false)
	private String handlerName;
	@TableField(exist = false)
	private String farmlandName;
	@TableField(exist = false)
	private String equipmentName;
	@TableField(exist = false)
	private String rtuSerialNum;
	@TableField(exist = false)
	private String rtuFarmlandName;
	@TableField(exist = false)
	private String warningRecordText;


	/**
	 * 创建人id
	 */
	private String createId;
	/**
	 * 创建用户姓名
	 */
	private String createName;
	/**
	 * 创建时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date createTime;
	/**
	 * 修改人id
	 */
	private String updateId;
	/**
	 * 修改时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date updateTime;
	/**
	 * 修改用户姓名
	 */
	private String updateName;
	/**
	 * 版本号
	 */
	@Version
	private Integer version;
	/**
	 * 删除标识 -1：删除 0：正常
	 */
	@TableLogic
	private Integer gcFlag;


	/**
	 * @description 结果状态描述
	 * @author guoqiang
	 * @email rd_guoqiang@139.com
	 * @date 2019-04-29
	 * @params * @param
	 * @return java.lang.String
	 */
	public String getResultStatusDesc() {
		if (null != resultStatus) {
			return MaintainTaskResultStatusEnum.getByValue(resultStatus).getDescription();
		}
		return "";
	}

	/**
	 * @description 类型描述
	 * @author guoqiang
	 * @email rd_guoqiang@139.com
	 * @date 2019-04-29
	 * @params * @param
	 * @return java.lang.String
	 */
	public String getTypeDesc() {
		if (null != type) {
			return MaintainTaskTypeEnum.getByValue(type).getDescription();
		}
		return "";
	}

	/**
	 * @description 进度状态描述
	 * @author guoqiang
	 * @email rd_guoqiang@139.com
	 * @date 2019-04-29
	 * @params * @param
	 * @return java.lang.String
	 */
	public String getStatusDesc() {
		if (null != status) {
			return ProcessStateEnum.getByValue(status).getDescription();
		}
		return "";
	}

	/**
	 * @description 来源描述
	 * @author guoqiang
	 * @email rd_guoqiang@139.com
	 * @date 2019-04-29
	 * @params * @param
	 * @return java.lang.String
	 */
	public String getSourceTypeDesc() {
		if (null != sourceType) {
			return MaintainTaskSourceTypeEnum.getByValue(sourceType).getDescription();
		}
		return "";
	}


}
